#include <iostream>
#include <string>
#include <vector>
template <typename T>
std::istream& operator >>(std::istream& input, std::vector<T>& v)
{
for (T& a : v)
input >> a;
return input;
}
void answer(unsigned x, unsigned y)
{
std::cout << x << ' ' << y << '\n';
}
void solve(const std::vector<std::string>& g)
{
const size_t h = g.size(), w = g[0].length();
const auto count = [&](size_t x) {
unsigned k = 0;
for (size_t i = 0; i < h && g[h-1-i][x] == '*'; ++i)
++k;
return k;
};
unsigned u = 0, d = 0;
for (size_t i = 1; i < w; ++i) {
const unsigned x = count(i-1), y = count(i);
if (x > y)
d = std::max(d, x - y);
else
u = std::max(u, y - x);
}
answer(u, d);
}
int main()
{
std::cin.tie(nullptr)->sync_with_stdio(false);
size_t n, m;
std::cin >> n >> m;
std::vector<std::string> g(n);
std::cin >> g;
solve(g);
return 0;
}
1140D - Minimum Triangulation | 75C - Modified GCD |
1722A - Spell Check | 1722B - Colourblindness |
1722D - Line | 1722C - Word Game |
1722G - Even-Odd XOR | 552E - Vanya and Brackets |
933A - A Twisty Movement | 1722F - L-shapes |
1196B - Odd Sum Segments | 1325D - Ehab the Xorcist |
552B - Vanya and Books | 1722E - Counting Rectangles |
168A - Wizards and Demonstration | 168B - Wizards and Minimal Spell |
7A - Kalevitch and Chess | 912B - New Year's Eve |
1537C - Challenging Cliffs | 879B - Table Tennis |
1674E - Breaking the Wall | 1282A - Temporarily unavailable |
1366C - Palindromic Paths | 336A - Vasily the Bear and Triangle |
926A - 2-3-numbers | 276D - Little Girl and Maximum XOR |
1253C - Sweets Eating | 1047A - Little C Loves 3 I |
758D - Ability To Convert | 733A - Grasshopper And the String |